return 0;
}
- adjust_guest_l1e(nl1e, d);
-
/* Fast path for identical mapping, r/w and presence. */
if ( !l1e_has_changed(ol1e, nl1e, _PAGE_RW | _PAGE_PRESENT) )
+ {
+ adjust_guest_l1e(nl1e, d);
return UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, curr,
preserve_ad);
+ }
if ( unlikely(!get_page_from_l1e(nl1e, FOREIGNDOM)) )
return 0;
+ adjust_guest_l1e(nl1e, d);
if ( unlikely(!UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, curr,
preserve_ad)) )
{
return 0;
}
- adjust_guest_l2e(nl2e, d);
-
/* Fast path for identical mapping and presence. */
- if ( !l2e_has_changed(ol2e, nl2e, _PAGE_PRESENT))
+ if ( !l2e_has_changed(ol2e, nl2e, _PAGE_PRESENT) )
+ {
+ adjust_guest_l2e(nl2e, d);
return UPDATE_ENTRY(l2, pl2e, ol2e, nl2e, pfn, curr, preserve_ad);
+ }
if ( unlikely(!get_page_from_l2e(nl2e, pfn, d)) )
return 0;
+ adjust_guest_l2e(nl2e, d);
if ( unlikely(!UPDATE_ENTRY(l2, pl2e, ol2e, nl2e, pfn, curr,
preserve_ad)) )
{
return 0;
}
- adjust_guest_l3e(nl3e, d);
-
/* Fast path for identical mapping and presence. */
- if (!l3e_has_changed(ol3e, nl3e, _PAGE_PRESENT))
+ if ( !l3e_has_changed(ol3e, nl3e, _PAGE_PRESENT) )
+ {
+ adjust_guest_l3e(nl3e, d);
return UPDATE_ENTRY(l3, pl3e, ol3e, nl3e, pfn, curr, preserve_ad);
+ }
if ( unlikely(!get_page_from_l3e(nl3e, pfn, d)) )
return 0;
+ adjust_guest_l3e(nl3e, d);
if ( unlikely(!UPDATE_ENTRY(l3, pl3e, ol3e, nl3e, pfn, curr,
preserve_ad)) )
{
return 0;
}
- adjust_guest_l4e(nl4e, d);
-
/* Fast path for identical mapping and presence. */
- if (!l4e_has_changed(ol4e, nl4e, _PAGE_PRESENT))
+ if ( !l4e_has_changed(ol4e, nl4e, _PAGE_PRESENT) )
+ {
+ adjust_guest_l4e(nl4e, d);
return UPDATE_ENTRY(l4, pl4e, ol4e, nl4e, pfn, curr, preserve_ad);
+ }
if ( unlikely(!get_page_from_l4e(nl4e, pfn, d)) )
return 0;
+ adjust_guest_l4e(nl4e, d);
if ( unlikely(!UPDATE_ENTRY(l4, pl4e, ol4e, nl4e, pfn, curr,
preserve_ad)) )
{